package com.example.site.config;

import cn.dev33.satoken.interceptor.SaInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class SaTokenConfigure implements WebMvcConfigurer {
    // 注册 Sa-Token 拦截器，打开注解式鉴权功能
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        // 注册 Sa-Token 拦截器，打开注解式鉴权功能
        registry.addInterceptor(new SaInterceptor()).addPathPatterns("/api/**");
    }
}
//这段代码是一个使用Spring框架编写的Java配置类，它实现了WebMvcConfigurer接口。其中，@Configuration注解表示它是一个配置类。
// 该类中的addInterceptors方法用于注册SaToken拦截器，并将其应用于"/api/**"路径下的请求。Sa-Token是一个轻量级的Java权限认证框架，它可以通过注解式鉴权来保护API接口。在这里，我们将SaInterceptor拦截器注册到Spring MVC的拦截器链中，以便在处理与"/api/**"路径匹配的请求时，调用Sa-Token进行权限验证。
// 因此，在其他地方需要使用Sa-Token进行API接口鉴权时，只需在对应的接口上添加Sa-CheckLogin、Sa-Role、Sa-Permission等注解即可。当请求到达"/api/**"路径时，拦截器会自动调用Sa-Token进行权限验证，如果未通过验证，则返回拒绝访问的错误信息。

//Sa-Token是一个轻量级的Java权限认证框架，它提供了一系列API接口鉴权的解决方案。
//   Sa-Token拦截器是Sa-Token框架提供的一种拦截器，它可以与Spring MVC等Web框架集成使用。当请求到达指定路径时，Sa-Token拦截器会自动调用Sa-Token进行权限验证。
//   如果该请求需要经过鉴权，则Sa-Token拦截器会检查该请求是否携带有效的Token，在此基础上根据用户所拥有的角色和权限信息来判断该请求是否被允许访问。如果鉴权通过，则继续执行该请求，否则返回拒绝访问的错误信息。